Systems and methods for designing, developing, and sharing assays

ABSTRACT

Described are computer-based methods and apparatuses, including computer program products, for designing assays. A database stores a set of user-selectable element data objects, a set of user-selectable operation data objects, and a set of validation rules for the one or more assays that can be used to determine whether an assay is valid. Data is received that is indicative of selecting, for a candidate assay specification, a first set of element data objects and a first set of operation data objects. The candidate assay specification is generated based on the received data. The candidate assay specification is validated. An assay data file is generated for the candidate assay specification that includes the first set of element data objects and the first set of operation data objects, such that the assay data file can be shared among a set of users.

TECHNICAL FIELD

The present invention is generally directed to the design, development,execution, analysis, and sharing of experimental assays. Morespecifically, the present techniques described herein provides a systemby which scientists and engineers can create assays using a softwareplatform that allows for development, execution, and analysis using agraphical user interface. The files may be shared using the software toallow collaboration, documentation, and improved productivity.

BACKGROUND

Many laboratory and healthcare personnel currently conduct assays(experiments) using paper notebooks and generic office software.Unfortunately, the current systems employed do not allow for a unifiedsystem to design, develop, evaluate, execute, optimize, analyze, andshare assays.

Many scientists store their protocols using a combination of methods andrely heavily on paper documents to create protocols and share results.This creates several problems in cases where a notebook is lost, a fileis missing, and the notes are misinterpreted by others. Furthermore,strict regulatory guidelines require audits where it may be difficult,if not impossible, to locate particular protocols as there is no searchcapability for hand-written documents.

As scientists design and develop their assays they often search theavailable literature via local libraries and the World Wide Web. Theymust often read through large volumes of protocols, in an attempt tobuild their own assay protocol. This process is time intensive, and oncean assay is developed, simple math errors result in unreliable data.Furthermore, assay variation can result from lack of documenting allrequired parameters.

SUMMARY

The techniques disclosed herein allow users to rapidly design anddevelop assays on a unified platform that is completely amenable to usercustomization, yet provides a system which allows uniform and reliabledocumentation of all protocols, procedures, and components. A systemwhich is comprised of a library of elements and operations which can bedisplayed through a graphical user interface (GUI) and customized byadding various properties, parameters, and custom plug-ins. Elements,operations, and plug-ins are available from a library of componentseither provided with the software or created by the user. These librarycomponents can also be provided by other users or technology providersto allow user to easily implement their assay protocols or integratecomponents into the user's new protocol. Furthermore, previously usedcomponents can be added to the new assay design via a drag-drop GUIinterface where the properties are updated without the need forrepetitive documentation. This creates tremendous efficiency for theuser.

Disclosed subject matter includes a computerized method forelectronically defining and validating an assay so the assay can beeasily shared among a set of users. The computerized method includesstoring, by a computing device, in a database (1) a set ofuser-selectable element data objects, each element data object defininga physical component that can be used in one or more assays, (2) a setof user-selectable operation data objects, each operation data objectdefining an action that can be performed for one or more element dataobjects from the set of element data objects for the one or more assays,and (3) a set of validation rules for the one or more assays that can beused to determine, for each assay of the one or more assays, whether anassociated set of element data objects from the set of element dataobjects and an associated set of operation data objects from the set ofoperation data objects define a valid assay. The computerized methodincludes receiving, by the computing device, data indicative ofselecting, for a candidate assay specification (1) a first set ofelement data objects from the set of element data objects, and (2) afirst set of operation data objects from the set of operation dataobjects, each operation data object from the first set of operation dataobjects defining an action to perform on one or more of the element dataobjects from the first set of element data objects. The computerizedmethod includes generating, by the computing device, the candidate assayspecification based on the received data, the candidate assayspecification comprising the first set of element data objects and thefirst set of operation data objects. The computerized method includesvalidating, by the computing device, the first set of element dataobjects and the first set of operation data objects for the candidateassay specification to determine the candidate assay specification isvalid. The computerized method includes generating, by the computingdevice, an assay data file for the candidate assay specification thatincludes the first set of element data objects and the first set ofoperation data objects, such that the assay data file can be sharedamong a set of users.

In some embodiments, the computerized method includes generatingstep-by-step execution instructions for the candidate assayspecification, each step listing one or more physical components fromthe first set of element data objects, and one or more actions, from theset of operation data objects, to perform on the one or more physicalcomponents. The computerized method includes displaying a first stepfrom the step-by-step execution instructions, receiving data indicativeof a completion of the first step, and recording a completion timestampof the first step.

In some embodiments, generating the assay data file includes receivingdata indicative of a request to share only a subset of the candidateassay specification. The computerized method includes generating anabbreviated assay data file that includes a subset of element dataobjects from the first set of element data objects, the subset ofelement data objects being associated with the subset of the candidateassay specification, and a subset of operation data objects from thefirst set of operation data objects, the subset of operation dataobjects being associated with the subset of the candidate assayspecification.

In some embodiments, generating the assay data file includes receivingdata indicative of a request to share the assay data file based on oneor more user profile attributes, generating a collaboration group basedon the one or more user profile attributes, sharing the assay data filewith the collaboration group, and storing a number of views of the assaydata file by one or more group members in the collaboration group.

In some embodiments, data indicative of a request to purchase a physicalcomponent defined by an element data object is received, wherein theelement data object includes data indicative of a vendor of the physicalcomponent, and an order request is transmitted to the vendor for thephysical component.

In some embodiments, generating the candidate assay specificationcomprises converting a graphical representation of the selected firstset of element data object and the first set of operation data objectsto a text-based assay data file.

In some embodiments, data indicative of a request to load a second assaydata file is received, and a graphical representation of the secondassay data file is generated.

In some embodiments, the techniques described herein allow for rapiddocumentation where linked elements, operations, and plug-in propertiesare updated by the user and generate a full-detail report via atransaction log file.

In some embodiments, the techniques described herein allow the user toinstantly create full assay transaction files of the proceduresperformed, components used, and attach relevant data. Digital signaturesand witness signatures can also be enabled for the purpose ofmaintaining regulatory compliance or intellectual property (IP)protection.

Furthermore, this transaction file allows the user or administrator tosearch for all assays based on query parameters. For example, if acertain reagent was found to be contaminated, a simple query canretrieve all assays which may have been impacted. It can provide thenames of the users involved, time performed, locations, and additionalspecific information. These potential benefits can serve to identify andaddress potentially inaccurate data.

For example, if members of a global team are experiencing anomalousresults, the search module can be used to determine if common componentsare being used by these users to isolate a potential root cause.

In addition, in some embodiments the techniques described herein allowusers to share the full assay designs, protocols, data, and results overa network where other group members can download protocols and repeatthem or modify them for their own purposes. The network can be on acorporate intranet, or on the World Wide Web to share with usersglobally.

The user can select which components of the assay he/she wishes to sharesuch that only desired portions are shared with others. In some cases, asupervisor or administrator's approval can be required for sharing.

Users and technology providers can collaborate effectively and createcustom library components allowing them to share new protocols,reagents, and also device drivers for new laboratory equipment which canbe operated by the software using plug-ins and API modules.

In some embodiments, the techniques described herein can be used on aplurality of devices including desktop, laptop, server, mobile andtablet devices. This allows users to design their assay at their desk,and complete their assay in the lab from a tablet device (for example).This prevents cross-contamination resulting from current laboratorynotebooks which move from office to lab and back to office providingopportunity for contamination.

Generally, the software can create an ecosystem and social collaborationnetwork for scientists, engineers, technicians, and healthcare providersby creating a universal tool for assay design, development, execution,data management, storage, and sharing. This benefits 3 main types ofusers: the User, the organization (local community), and the globalcommunity.

The software defines assays as including elements, operations, plug-ins,and/or data. It defines an element as being a thing (e.g.: flask, cells,device, consumable, etc) and operations as being performed on theseelements (e.g.: dispense, aspirate, incubate, etc).

Notes/observations, intermediate results, and final results constitutedata. Furthermore all elements and operations have properties which canbe pre-defined or updated and customized by the user. Plug-ins includecustomized objects which may require additional parameters and can alsobe stored as templates (e.g.: a microplate template). The combination ofelements, operations, and plugins allow for the creation of data.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an exemplary block diagram of an example network architecturefor designing assays, of certain embodiments;

FIG. 2 is an exemplary architectural block diagram of the applicationsoftware for designing assays, of certain embodiments;

FIG. 3 is an exemplary architectural block diagram of the library moduleof certain embodiments;

FIG. 4 is an exemplary architectural block diagram of the assay designmodule of certain embodiments;

FIG. 5 is an exemplary architectural block diagram of the assay pluginmodule of certain embodiments;

FIG. 6 is an exemplary architectural block diagram of the wizard moduleof certain embodiments;

FIG. 7 is an exemplary architectural block diagram of the elementsmodule of certain embodiments;

FIG. 8 is an exemplary architectural block diagram of the operationsmodule of certain embodiments;

FIG. 9 is an exemplary architectural block diagram of the data module ofcertain embodiments;

FIG. 10 is an exemplary architectural block diagram of the search moduleof certain embodiments;

FIG. 11 is an exemplary architectural block diagram of the transactionlog module of certain embodiments;

FIG. 12 is an exemplary architectural block diagram of the assay playermodule of certain embodiments;

FIG. 13 is an exemplary architectural block diagram of the accountmodule of certain embodiments;

FIG. 14 is an exemplary architectural block diagram of the data analysismodule of certain embodiments;

FIG. 15 is an exemplary architectural block diagram of the ecommercemodule of certain embodiments;

FIG. 16A illustrates an exemplary process for creating a new assay andsharing the new assay with a team or the global community, of certainembodiments;

FIG. 16B illustrates an exemplary process for creating a new assay andsharing the new assay with a team or the global community, of certainembodiments;

FIG. 17A illustrates an exemplary process for creating a new assay basedon an existing assay, and sharing the new assay with a team or theglobal community, of certain embodiments;

FIG. 17B illustrates an exemplary process for creating a new assay basedon an existing assay, and sharing the new assay with a team or theglobal community, of certain embodiments;

FIG. 18A illustrates an exemplary process for designing an assay at agiven time, adding data to the assay project at a later time, andsharing the assay with a team or global community, of certainembodiments;

FIG. 18B illustrates an exemplary process for designing an assay at agiven time, adding data to the assay project at a later time, andsharing the assay with a team or global community, of certainembodiments;

FIG. 19A illustrates an exemplary process for designing and sharingassays, and creating opportunities for other users to download assayprojects, templates, or components and build on the downloaded assays,of certain embodiments;

FIG. 19B illustrates an exemplary process for designing and sharingassays, and creating opportunities for other users to download assayprojects, templates, or components and build on the downloaded assays,of certain embodiments;

FIG. 20 illustrates an exemplary process for storing assays as projectsand components that include elements, operations, and plugins, alongwith their associated properties, and enabling searches for assays,users, and components based on any query parameter, of certainembodiments;

FIG. 21A illustrates an exemplary process whereby a sample cell-basedassay workflow entails a variety of steps, of certain embodiments;

FIG. 21B illustrates an exemplary process whereby a sample cell-basedassay workflow entails a variety of steps, of certain embodiments;

FIG. 22A illustrates an exemplary process and assay workflow using theexample assay described in FIGS. 21A and 21B, of certain embodiments;

FIG. 22B illustrates an exemplary process and assay workflow using theexample assay described in FIGS. 21A and 21B, of certain embodiments;

FIG. 22C illustrates an exemplary process and assay workflow using theexample assay described in FIGS. 21A and 21B, of certain embodiments;

FIG. 22D illustrates an exemplary process and assay workflow using theexample assay described in FIGS. 21A and 21B, of certain embodiments;

FIG. 23 illustrates an exemplary graphical user interface for generatingassays, of certain embodiments;

FIG. 24 illustrates an exemplary graphical user interface for generatingassays, including a properties interface, of certain embodiments;

FIG. 25A illustrates a portion of an exemplary transaction log file, ofcertain embodiments;

FIG. 25B illustrates a portion of an exemplary transaction log file, ofcertain embodiments;

FIG. 25C illustrates a portion of an exemplary transaction log file, ofcertain embodiments;

FIG. 25D illustrates a portion of an exemplary transaction log file, ofcertain embodiments;

FIG. 25E illustrates a portion of an exemplary transaction log file, ofcertain embodiments;

FIG. 25F illustrates a portion of an exemplary transaction log file, ofcertain embodiments;

FIG. 25G illustrates a portion of an exemplary transaction log file, ofcertain embodiments;

FIG. 25H illustrates a portion of an exemplary transaction log file, ofcertain embodiments;

FIG. 26 illustrates an exemplary graphical user interface for generatingassays, including the software plugin interface for a plugin, of certainembodiments;

FIG. 27A illustrates an exemplary logical assay workflow, of certainembodiments;

FIG. 27B illustrates an exemplary logical assay workflow, of certainembodiments;

FIG. 27C illustrates an exemplary logical assay workflow, of certainembodiments;

and

FIG. 27D illustrates an exemplary logical assay workflow, of certainembodiments.

DETAILED DESCRIPTION

FIG. 1 is a block diagram of an example network architecture that canprovide the ability to design, develop, evaluate, execute, optimize,analyze, and/or share assays as an overview of the current techniquesdescribed herein. The system includes the Application Software (110),Library Server Intranet (120), Main Library Server Extranet (130), User(140), Administrator (150), Authentication server (160), and Vendor(170) interacting through a wide area network and local area network.The Application Software (110) gives the User (140) the ability todesign, evaluate, execute, analyze, and share assays and data. The Admin(150) is able to manage the User (140), set permissions, rules, andreview the assays generated by the User (140). Authentication (160)allows control over how the User (140) can interact with variousnetworks and associated servers. The Library Server Intranet (120)allows the User (120) to upload and download various assays with otherusers in a group. The Main Library Server Extranet (130) allows the Userto upload and download various assays with other users in a globalcommunity. The Vendor (170) may be a commercial provider of assays andcomponents which may be notified should the User (140) desire to requestor purchase assays or components through a notification system that mayinclude e-commerce functionality.

The techniques described herein can be implemented as a softwareapplication (110) as part of a stand-alone device or alternatively,attached to an intranet network server (120), and may also be attachedto the World Wide Web (130). User(s) can use the software installed ontheir own device or remotely via the network. This allows for a user touse the software on a device at one location (e.g.: home or office), andaccess the software on another device in a separate location (e.g.:laboratory). This also allows for users to share assay components whichare stored on their intranet (120) servers or share them globally withother users via the World Wide Web using the Main Library Server (130)allowing for global collaboration. The Main Library Server (130) allowsfor collaboration and also contains commercial components which userscan view, download, or request to purchase. The technology provider andVendor (170) can add assays and other components to the Main LibraryServer (130) and make them available to users either for purchase or atno cost. The Main Library Server (130) also allows for protection fromunauthorized use of the software via a licensing system should thesoftware be lost or stolen. The administrator version of the software(150) can control the user, rights, and privileges of the user (140)allowing or prohibiting access to group intranet (120) and canalternatively contact the main server administrator (130) should thesoftware be lost or stolen. Furthermore, the Main Library Server (130)may provide statistical information such as downloads and/or reviews ofassays to creators and/or users. Additionally, the creator of an assaymay specify those which may be able to view and/or download it. Forexample, a person sharing an assay with the global community may be ableto specify sharing privileges with certain individuals, groups, orentities. Moreover, each user may create a user profile containingattributes specified by the user for use in search relevance.

FIG. 2 is an architectural block diagram of the Application Software(110) containing the Library Module (200), the Assay Design Module(205), Assay Plugin Module (210), Wizard Module (215), Element Module(220), Operation Module (225), API Module (230), Data Module (235),Search Module (240), Transaction Log Module (245), Assay Player Module(250), Account Module (255), Data Analysis Module (260), and EcommerceModule (265). The Application Software Module (110) may be in anetworked environment with logical connections to a remote computer suchas the Intranet Network Library (120), Authentication (160), and theExtranet Main Network Library (130). The Intranet Network Library (120)may contain an elements library, assay library, data library, and assayplugins library. The Authentication (160) includes user authentication,rights, and privileges. The Extranet Main Network Library (130) maycontain an elements library, assay library, data library, and assayplugins library.

The application software (110) consists of several modules including aLibrary Module (200) which serves as a repository. Assay softwaretemplates, components, and data files are stored in the Library Module(200). Assay components include elements, operations, plugins, and data.This is shown in greater detail in FIG. 3.

The Assay Design Module (205) allows the creation of assay designs bycopying and loading components including elements, operations, plugins,and data from the Library Module (200). Alternatively, existing assayscan be copied and imported into the Assay Design Module (205) andmodified to develop new assays. Additionally, an assay can be designed,stored in the library, and then be retrieved and performed at a latertime at which point data files can be added. More detail is provided inFIG. 4. The Assay Design Module (205) has a graphical user interface(GUI) providing a drag-and-drop interface which allows for rapid assaydesign where the user can use pre-defined parameters which can then beupdated for the specific assay. More detail is provided in FIG. 4.Furthermore, the Assay Design Module (205) allows for the use ofplug-ins.

The Assay Plugin Module (210) allows for the interaction of plugins withthe system. Plugins are copied from the Library Module (200), loadedinto the Assay Design Module (205), and updated via the Assay PluginModule (210). Plugins may be created for a variety of assays andcomponents (see FIG. 5) including but not limited to: microplatetemplates, DNA gel electrophoresis, Western blot, instrument controlinterfaces, and more. Plug-ins also allow for the direct interactionbetween the assay design and the actual experiment performed.

The Wizard Module (215) provides error-checking of assay parameters. TheWizard Module (215) can also be used for stand-alone operationindependent of an assay being loaded. For example, a user may invoke thesoftware and use the Wizard Interface to perform on-demand calculationssuch as amount of solvent to add to a solute to achieve a desiredconcentration, review rules for conducting certain assays, and so forth.This can be performed in the absence of an assay design. Moreover, atany point in an assay design, a user may choose to invoke the WizardModule (215). This module pulls in properties from specific elements,operations, and plug-ins (if needed) to determine whether assayparameters are correct. For example, adding 10 uL of a buffer to a wellcontaining a volume of 10 uL of a 20 uM concentration of a substanceresults in 20 uL final volume with a concentration of 10 uM (andtherefore assays that do not preserve this most likely contain one ormore errors). The Wizard Module (215) contains a math engine and/orother related software that compares elements before and afterassociated operations to determine if the desired assay parameters aremet. The Wizard Module (215) can also contain custom parameters, such asrules, to validate an assay. For example, a user may choose to preventcells with a cell passage number greater than 10 from being used in anassay. If a user enters a cell passage number greater than 10, theWizard Module (215) would display a response that the cell passagenumber used is greater than the limit set. This avoids costlymiscalculations and poor experimental design which can renderexperimental results inaccurate. More detail about the Wizard Module isprovided in FIG. 6.

The Element Module (220) defines element names and element properties.It can also be used to create new elements with specific properties andadd them to the Library Module (200). An element may be a component inan assay upon which operations are performed. For example, a cellculture flask may be an element. The properties of this element couldinclude parameters such as flask volume, manufacturer, model number, andmore. More detail about the Element Module (220) is provided in FIG. 7.Elements may be combined with operations, plugins, and data files tocreate assay projects.

The Operations Module defines operation names and operation properties.It can be used to create new operations with specific properties and addthem to the Library Module (200). Operations are tasks such asdispensing liquid, incubation, and more. Operations can be performed onelements, plugins, and data. Operations may have specific propertiessuch as dispensing a certain volume of a liquid or incubation for acertain time at a certain temperature. More detail about the OperationsModule (225) is provided in FIG. 8.

The API Module (230) allows the software to interact with othersoftware. API calls can be made which send or receive commands to andfrom other software. Alternatively, the API module (230) can allow theassay software to get responses from other software. One example wouldbe a device operating in a lab which sends back a response aftercompleting a certain task as determined by the software. The API moduleallows for integration of the software with other existing software anddevices.

The Data Module (235) allows the user to load data, such as intermediateand/or experimental results, into the software. Data may be in manyforms and the software may parse the data, and store it to the LibraryModule (200). Intermediate data, such as data generated at any point inthe assay may be integrated. More information about the Data Module(235) is provided in FIG. 9. After data has been added, it can then bemanipulated for analysis via the Data Analysis Module (260).

The Search Module (240) allows for search within the Library Module(200) or can alternatively allow for searching in external libraries onthe network such as the Intranet Network Library (120) and the ExtranetMain Network Library (130). The Search Module (240) can also be used byan administrator for a variety of purposes such as to determine thenumber of assays employing a particular element, operation, plugin, ordata. For example, if an element (e.g.: a reagent) is found to becontaminated, the Search Module (240) can provide list of assays, users,data, timestamps, and more which could have been impacted by the use ofa particular reagent. More information about the Search Module (240) isshown in FIG. 10. The Search Module (240) also indexes the TransactionLog Files generated by the Transaction Log Module (245) to providespecific user and assay information.

The Transaction Log Module (245) logs all steps, assays, procedures, andmore performed by the user. The log contains (but is not limited to)lists of elements, operations, properties, plug-ins, data, and dataanalysis performed. The Transaction Log Module (245) also contains atimestamp, user signature, and witness countersignature which may becritical for Good Laboratory Practice (GLP) and documentation. TheTransaction Log Module (245) is shown in greater detail in FIG. 11 andone possible example is shown in FIG. 25.

The Assay Player Module (250) is a step-by-step playback of an assaydesign as created in the Assay Design Module (205). An assay can bedesigned at the desk, and then be taken to the laboratory and a singleuser can use the Assay Player Module (250) to perform the assaystep-by-step, with notes and timestamps added with each step (e.g., oncethe user clicks from one step to another). More detail about the AssayPlayer Module (250) is shown in FIG. 12.

The Account Module (255) stores critical information about the user,license, software version, and updates. The Account Module (255) usesthis information to include in authentication, transaction log files,and system updates. More detail about the Account Module (255) is shownin FIG. 13.

The Data Analysis Module (260) uses the raw data from the Data Module(235) and provides data anaylsis functions (e.g.: graphing, plotting,etc). Using information from the assay, the Data Analysis Module (260)can perform certain tasks such as subtracting negative control valuesform data points, graphing experimental responses against a scaledictated by the positive controls, and more. Routine analysis functionscan be stored to the library and invoked for analysis by the user fromthe Data Analysis Module (260). More detail about the Data Analysismodule is provided in FIG. 14.

The Ecommerce Module (265) allows the user to interact with vendors ofparticular assay components. Since elements, operations, and plug-insare available from the External Main Network Library (130) on the WorldWide Web (WWW), vendors may be able to list their products in thelibrary making them available to users. As users design their assay,they can integrate components from vendors, send sample and purchaserequests, and/or complete the purchase through the system. Moreinformation about the Ecommerce Module (265) is provided in FIG. 15.

FIG. 3 is an architectural block diagram of the Library Module (200) andincludes the Elements Library (300), the Data Library (310), the AssayLibrary (320), and the Assay Plugins Library (330). While the LibraryModule (200) is available on the local device, it is also connected viaa network to an Intranet Library (120) and the Main Extranet NetworkLibrary (130). Each assay may contain the following components: Elements(e.g.: hardware, consumables, reagents, etc), Operations (e.g.:aspirate, dispense, incubate, etc), Plugins (e.g.: microplate plugin),Data (e.g.: ASCII files, photographs, etc) and each of these componentsare stored in the Library Module (200). While these components can alsobe stored elsewhere, the function of the Library Module (200) is toprovide a repository of components for designing, executing, and storingassays, data, and data analysis.

The Library Module (200) stores each component by type. The ElementsLibrary (300) contains libraries of the Element type, which areuser-selectable element data objects. For example, each element dataobject defines a physical component that can be used in one or moreassays. The hardware library may contain elements such as pH meters,microplate readers, and pipettors. The consumables library containselements such as tissue culture plates, pipette tips, and flasks. Thereagents library may contain elements such as buffers, salt solutions,and culture media. The compounds library may contain compounds used inassays such as small molecules. The biologics library may contain itemssuch as cell lines, proteins, and antibodies. The custom library is alsoavailable for storing custom elements. The structure of the library canbe modified by the user, however a default set of common components canallow the user to get started quickly with common elements. The LibraryModule (200) may also function as a tool to search for elements neededfor an assay. For example, if a user needs a low volume culture flask,the user can search the library for such an element by property or othervalue.

Furthermore, commercial and sample products can be included in thislibrary such that vendors of technology products could pay for inclusioninto these libraries. Software updates could also update the LibraryModule (200) to include new items. The Library Module (200) also allowsthe user to share Elements, Data, Operations, and Assay Plugins.Depending on the software version, the user permissions set by theAdministrator may control permissions to enable or disable sharing andother functionalities with the Intranet Network Library (120) or withthe Extranet Main Network Library (130). Some versions may not requirepermission controls for these functions.

The Data Library (310) may include Raw Data Files which may be stored inthe Library Module (200). Data File References are references to DataFiles stored elsewhere. The Data Parser Library contains a set ofparsers for different data types. Parsers can be used for dataextraction and manipulation. The Data Analysis Files include items suchas graphs, plots, and more where the data has been manipulated toprovide information. Custom files may also be stored in the Data Library(310) enabling the user to have flexibility with storing data. Customfiles may include photographs, images, and more.

The Assay Library (320) is also part of the Library Module (200). TheAssay Library (320) may contain the Operations Library which includesuser-selectable operations data objects that define the set ofoperations (or actions) that may be performed in an assay (e.g., for oneor more element data objects). The Protocol Library may include the setof Elements, Operations, and Plugins used in a given assay. The ProtocolLibrary allows a user to load an assay previously performed, and add,edit, or delete certain components to create a new assay. The ProtocolLibrary can also be shared to the Intranet Network Library (120) to beshared within a group or organization or with the Extranet Main NetworkLibrary (130) to be shared with users globally. Optionally, a freewareversion of the software may allow for viewing of certain files withlimited functionality. The Assay Library (320) also contains theTransaction Logs which are files including all elements, operations,plugins, and properties of a given experiment performed by a user.Optionally, the Transaction Log may include data. These files may alsocontain the signature, witness signature, timestamp information, andother information. These Transaction Log files can be also be queried bythe user using the Search Module (240) or Administrator to find certainassays performed by a user, containing a certain element, or certainoperation.

The Assay Plugins Library (330) contains a Plugins Library and TemplateLibrary. The Plugins Library is a repository of Plugins which allow theuser to work with predefined and also custom plugins. Plugins can be,for example, customized elements, operations, or data tools that can beadded to the system. For example, the plugins can have specializedproperties, can provide specialized abilities or features to the system,and/or can have their own interface within the software. Plugins providecustomized functionality with the software. Plugins can vary widely suchas instrument control plugins, microplate plugins, and can also bedeveloped via the Plugin Module (210) to create custom plugins. Oneexample of a plugin would be the microplate plugin which includes amicroplate properties interface for specifying specific wells, volumes,and details for a microplate. Microplate layouts can also be stored astemplates in the Template Library such that the user can select themicroplate template whenever an assay is performed saving the user time.Moreover, as with all other components, the Template Library can beshared with users via the Intranet Network Library (120) to be sharedwithin a group or organization or with the Extranet Main Network Library(130) to be shared with users globally.

All modules within the Application Software (110) can interact with theLibrary Module (200) to provide the user access to assays and assaycomponents locally, via the Intranet Network Library (120) to be sharedwithin a group or organization, or with the Extranet Main NetworkLibrary (130) to be shared with users globally.

FIG. 4 is an architectural block diagram of the Assay Design Module(205) which includes the Visual Assay Design Graphical User Interface(488), Drag-Drop Toolbar (489), Library Component Copy-Import Engine(490), Properties Module (491), Relationship Linking Engine (492),Wizard Response Interface (493), Plugin Properties Engine (494),Save/Export Engine (495), Properties Interface (496), and OperationsInterface (497).

The Visual Assay Design Graphical User Interface (488) allows the userto interact with the software and create, modify, edit, and save theassay files. The Drag-Drop Toolbar (489) allows the user to select anelement, operation, plugin or other component using icons. An icon canbe dragged to the workspace from the library using the Library ComponentCopy-Import Engine (490). The properties of the elements can then beupdated using the Properties Module (491) which has a PropertiesInterface (496), the operation properties can be updated using theOperations Interface (497), or the Plugin properties can be updatedusing the Plugin Properties Engine (494). The elements, operations,plugins, and data are linked using the Relationship Linking Engine (492)which creates relationships between components in a visualrepresentation. The Wizard Response Interface (493) provides aninterface for the result from the Wizard Module (215). The Save/ExportEngine (495) allows the user to save and share all or part of the assay.The user may desire to share certain items with or without data and theSave/Export Engine allows the user to share all or part of the projectwith others. FIG. 27 provides more details surrounding Assay DesignLogic.

Therefore, in some examples, the assay design module allows a user todefine the elements, operations, and plug-ins for a candidate assayspecification (e.g., an assay that has not yet been validated using thewizard module 215). The defined components can include a set of elementdata objects from the set of element data objects stored in the ElementsLibrary 300, and a set of operation data objects from the set ofoperation data objects stored in the Operations Library of the AssayLibrary (320). The included operation data objects can define action(s)to perform on one or more of the element data objects of the assay. Thecandidate assay specification is generated based on the data receivedfrom a user.

FIG. 5 is an architectural block diagram of the Assay Plugin Module(210) which may include the Plugin Graphical User Interface (500),Plugin Properties Module (502), Library Component Copy/Import Engine(504), Plugin Creation Interface (506), Plugin Template Interface (508),Save/Export Engine (510), Microplate Module (512), DNA Module (514),Protein Module (516), Drug Module (518), RNA Module (520), Cell Module(522), Surfactants Module (524), Custom Module (526), Virology Module(528), Petrochemistry Module (530), and Synthesis Module (532).

The Assay Plugin Module (210) has a Plugin Graphical User Interface(500) which allows the user to interact with the software. For example,as described above plugins can be customized elements, operations, ordata tools which have specialized properties, can provide specializedabilities, and/or can have their own interface within the software.Plugins provide customized functionality with the software. The PluginProperties Module (502) allows the user to edit and update pluginproperties. The Plugin Creation Interface (506) allows the user tocreate new plugins. The Plugin Template Interface (508) allows the userto interact with plugin templates (e.g.: microplate template). There maybe a variety of possible plugins which are preloaded in the software toallow use with a variety of specific assays. The Microplate Module (512)is specifically designed for assays involving microplates. The DNAModule (514) is designed for use with DNA assays (e.g.: DNA Sequencing).The Protein Module (516) is designed for assays involving proteins(e.g.: Western Blot). The Drug Module (518) is designed for use withsmall molecule and drug assays. The RNA Module (520) is for use withassays involving RNA. The Cell Module (522) is for use with assaysinvolving cells. The Surfactants Module (524) is for assays involvingsurfactants. The Virology Module (528) is for use with virology assays.The Petrochemistry Module (530) is for use with assays inpetrochemistry. The Synthesis Module (532) is for use with assays insynthesis. Custom plugins can also be created using the Custom Module(526). These modules may be developed for specific purposes such asoperating devices or specialized assays. The Library ComponentCopy/Import Engine (504) allows the user to import Assay PluginComponents from the library. The Save/Export Engine (510) allows theuser to save, export, and share Assay Plugin components.

FIG. 6 is an architectural block diagram of the Wizard Module (215)which may include the Wizard Graphical User Interface (600), PropertiesEngine (602), Library Component Copy-Import Engine (604), Math Module(606), Response Module (608), and Rule Module (610).

The Wizard Graphical User Interface (600) allows the user to access themodule in a stand-alone mode enabling calculations when needed.Additionally, the Wizard Module (215) interfaces with the Assay DesignModule (205) to evaluate a full assay designed in the Assay DesignModule (205). As is further described below, the Wizard Graphical UserInterface (600) stores a set of validation rules for assays that can beused to determine whether the element data objects and operation dataobjects for a particular assay define a valid assay.

The Math Module (606) performs mathematical operations. Mathematicaloperations can include, for example, common assay calculations such asmolarity, molality, volume, concentration, dilution volume, mass,density, and cell counting. The Properties Engine (602) comparesproperties between elements, operations, and plugins. The Rule Module(610) allows the user or admin user to set up rules for evaluation suchas maximum cell passage number for use in an assay. Additional examplerules may include maximum wash cycles, minimum dispense height, maximumdispense speed, number of freeze-thaw cycles, lot numbers to exclude,incubation times, and any rules set by the user and/or administrator.Rules can be used to set guidelines for assays performed by anindividual or group. The Response Module (608) provides results from theevaluation. The Library Component Copy-Import Engine (604) allows thesystem to import library components.

The Wizard Module (215) evaluates the properties of elements,operations, and plugins to validate experimental parameters. Forexample, 10 uL transferred from a source well to a destination wellcontaining 10 uL results in 20 uL final volume in the destination well.In this example, if the user has entered a different value for thevolume in the destination well, such as 22 uL, the Wizard may alert theuser of the error.

FIG. 7 is an architectural block diagram of the Elements Module (220)which includes the Element Graphical User Interface (700), PropertiesEngine (702), Element Engine (704), Element Selection Interface (706),Library Component Copy-Import Engine (708), and the Save/Export Engine(710).

The Elements Module (220) contains an interface for working withelements called the Element Graphical User Interface (700). There is anElement Engine (704) which creates and modifies elements (e.g., storedas element data objects) and a Properties Engine (702) which creates,modifies, and associates property data objects with the element dataobjects. The Element Selection Interface (706) allows the user to selectelements which can be copied into the interface from the library via theLibrary Component Copy-Import Engine (708). Elements can also be savedand exported using the Save/Export Engine (710).

FIG. 8 is an architectural block diagram of the Operations Module (225)which includes the Operations Graphical User Interface (800), PropertiesEngine (802), Operations Engine (804), Operations Selection Interface(806), Library Component Copy-Import Engine (808), and the Save/ExportEngine (810).

The Operations Module (225) contains an interface for working withoperations called the Operations Graphical User Interface (800). TheOperations Engine (804) creates and modifies operations and theProperties Engine (802) creates, modifies, and associates propertieswith the operations (e.g., stored as operation data objects). TheOperations Selection Interface (806) allows the user to selectoperations which can be copied into the interface from the library viathe Library Component Copy-Import Engine (808). Operations can also besaved and exported using the Save/Export engine (810).

FIG. 9 is an architectural block diagram of the Data Module (235) whichincludes the Data Graphical User Interface (900), Data Import/ExportEngine (902), Parser Module (904), Data Engine (906), Library ComponentCopy-Import Engine (908), and the Save/Export Engine (910).

Data Module (235) allows the user to import data into the assay project.The user interacts with the Data Module (235) via the Data GraphicalUser Interface (900). The Data Import/Export Engine (902) allows theuser to pull data into the Data Module (235). The raw data file can beparsed by the Parser Module (904) and processed by the Data Engine(906). Parsers may vary depending on the type of data file (e.g.: ASCII,image, text, etc) created and the device which generates the data (e.g.:reader devices). The Parser Module (904) also allows the user to createparsers. Alternatively, various parser files can be imported from theLibrary Module via the Library Component Copy-Import Engine (908). Datafiles and parsers can also be saved back to the library via theSave/Export Engine (910). Technology providers may also provide parsersfor their products and make them available for the user to use with thesoftware.

FIG. 10 is an architectural block diagram of the Search Module (240)which includes the Search Graphical User Interface (1000), DataImport/Export Engine (1002), Search Engine (1004), and Search Indexer(1006). The Search Graphical User Interface (1000) allows the user tosearch for files including assays, assay components, and transaction logfiles in the Library Module (200). It also allows for searching theIntranet Library Network (120) depending on the rights of the user aspermitted by the Authentication module (160). The search module may alsoallow the user to search the Main Extranet Network Library (130) forassays, components such as specialized plugins, elements, operations,and assays shared with the global community. An administrator may wishto search all assays performed by a user, or perhaps search for allinstances in which a certain element or operation was performed. TheSearch Graphical User Interface (1000) provides the user with searchparameters for entering their search query. It also provides a resultsinterface based on the query. The Search Engine (1004) performs thesearch based on the user's query. The Search Indexer (1006) contains anindex of searchable records (1006). The Data Import/Export Engine allowsthe user to import search results and also export search results for thepurpose of reporting (1002). Depending on user authentication, it may beimportant to create transaction log files of the search performed by theuser. For example, an administrator with multi-site, multi-team levelaccess may run queries and generate results which are confidential innature. As such, the Transaction Log Module (245) may generatetransaction log files recording these queries, results, user, date, andtime performed.

FIG. 11 is an architectural block diagram of the Transaction Log Module(245) which includes a Graphical User Interface (1100), FileImport/Export Engine (1102), Transaction Engine (1104), Signature Engine(1106), Speaker Identification Module (1108), Voice Module (1110),Touchscreen Module (1112), and Encryption Engine (1114).

The Transaction Log Module (245) generates files which define assaysthat can be performed by a user. Additionally, they may record non-assayactivities such as search queries and results of assays carried out byusers (as described in FIG. 10). The Transaction Log Module (245)contains a Graphical User Interface (1100) for accessing transactionlogs file. The Transaction Engine (1104) assembles the entire list ofelements, operations, plugins and respective properties sequentiallyperformed in an assay. The file may be signed using the Signature Engine(1106) which uniquely identifies the user. A variety of methods may beemployed to identify the user such as username and password, voicerecording, speaker identification, and touchscreen signature. The voicerecording may be performed by the Voice Module (1110) storing the usersvoice with the transaction file. The Speaker Identification Module(1108) may identify the user by voice and act as the user signature. ATouchscreen Module (1112) can also be used, such as that found on atablet device, mobile device, or peripheral device wherein the userwould use their finger (or stylus) to stroke a signature stored with thefile. The transaction log file can also be encrypted for securitypurposes via the Encryption Engine (1114). The File Import/Export Engine(1102) allows transaction files to be saved to the Library Module (200)or retrieved to be viewed by the user. Transaction log files may bevaluable for documentation of assays and activities performed by a user.They may also be required in legal matters. Furthermore, the file maycontain user information, timestamp, and signature and additionalinformation. In some embodiments, the Transaction Log Module (245) mayinteract with the Intranet Network Library (120), Authentication (160),and the Extranet Main Network Library (130) or other systems to generateunique values including user and timestamp information.

FIG. 12 is an architectural block diagram of the Assay Player Module(250) which includes a Graphical User Interface (1200), Assay PlayerEngine (1202), Library Component Copy-Import Engine (1204), andSave/Export Engine (1206). The Assay Player Module (250) Graphical UserInterface (1200) allows the user to access the assay. The LibraryComponent Copy-Import Engine (1204) allows the stored assay to beimported into the module. The Assay Player Engine (1202) allows the userto add notes, update properties, and add data as the assay is performed.The Save/Export Engine (1206) allows the user to save the file back tothe Library Module (200) or to be shared via the Intranet NetworkLibrary (120) or the Extranet Network Library (130).

The Assay Player Module (250) is a system which allows the assaydesigned in the Assay Design Module (205) to be performed at a latertime or viewed in a step-by-step format. Each step lists one or morephysical components from the set of element data objects for the assaystep, and one or more actions from the associated operation data objectsfor the step.

For example, the user may choose to design the assay in one location,and then perform the assay elsewhere at later time. The assay player canimport the Elements, Operations, and Plugins along with their respectiveproperties for a given assay and prompt the user step-by-step with“Next” and “Previous” type navigation to switch among the steps of theassay. The player allows the user to graphically view the proposedproperties of each item and update them as they perform the assay. It ispossible for a special version of the software to be designed for tabletdevices or mobile devices such that a user may enter a lab or medicalfacility with a tablet device and use the Assay Player Module to performthe assay, record the actual results, notes, data, and provide signaturefor the assay using the finger (or stylus) to stroke a signature storedwith the transaction file. The Assay player module has the ability torecord and note elapsed time between each step of an assay or procedure,such as by recording a completion timestamp for a step, and a totalamount of time spent working on the particular step (or combination ofsteps).

FIG. 13 is an architectural block diagram of the Account Module (255)which includes a Graphical User Interface (1300), Account Engine (1302),File Import/Export Engine (1304), License Validation Engine (1306),Update Module (1308), and User Authentication Engine (1310).

The Account Module (255) stores software and user information. TheGraphical User Interface (1300) allows the user and/or administrator toview the software version and setup user permissions. The Account Engine(1302) determines the type of user account. There may be several accounttypes and several users using the same installation of the software.Each user may require a unique user account. In addition, each user maycreate a user profile containing attributes specified by the user foruse in search relevance. The License Validation Engine (1306) validatesthe software license for a given user. Should a user lose their device,the system can be disabled remotely to prevent unauthorized access viathe Authentication Module (160). The User Authentication Engine (1310)exchanges information with the Authentication Module (160) to determinethe user authentication, rights, and privileges. Additionally, an UpdateModule (1308) is included which allows the software to update to newreleases, and update the library with newly available elements,operations, plugins, and other components. In some examples, technologyproviders wishing to add new elements, operations, and plugins to thelibrary pay for inclusion in such updates. The File Import/Export Engine(1304) allows for files to be imported and exported from the softwareincluding software application files and library files.

FIG. 14 is an architectural block diagram of the Data Analysis Module(260) which includes a Graphical User Interface (1400), PropertiesModule (1402), Math Module (1404), Graphical Display Engine (1406),Library Component Copy-Import Engine (1408), Save/Export Engine (1410),and Analysis Plugins Module (1412).

The Data Analysis Module (260) includes a Graphical User Interface(1400) which can be used to perform various data analysis tasks. TheProperties Module (1402) allows the Data Analysis Module to interactwith the properties of plugins, elements, and operations. The LibraryComponent Copy-Import Engine (1408) allows the Data Analysis Module toimport data as well as stored analytical procedures from the LibraryModule (200). The Math Module (1404) contains mathematical operationsfor manipulating data (e.g.: subtracting negative well values asdescribed previously). The Graphical Display Engine (1406) allows forthe generation of graphs. Data analysis output files and procedures canbe saved and/or exported via the Save/Export Engine (1410). The DataAnalysis Module (260) can also interface with specialized plugins foranaylsis via the Analysis Plugins Module (1412) which allows forspecialized analytic tools for assays which can also be developed andshared.

The Data Analysis Module (260) allows for the manipulation of data togenerate results and reports such as graphs, plots, and more. Once datais generated in an assay, the Data Module (235) is able to import,store, and parse the raw data. The Data Analysis Module (260) can usethe properties of elements, operations, and plugins to render reports.One example would include a microplate plugin with properties thatdefine a plate map that designates the negative and positive controlwells for an assay. Using the Data Analysis Module (260) the user cannormalize values for that assay by subtracting the negative control wellvalues from any or all wells on the microplate, thus reducing backgroundsignal. Furthermore, the positive control wells can be used as arelative indicator for the response from the experimental wells.Additionally, if a compound was used in a dose-dependent manner acrosswells, the individual wells can be plotted versus the concentration ofcompound used. Since this information is stored in the properties of theplugin module used in that assay, the information can be retrieved fromthe Assay Plugin Module (210) and data from the Data Module (235) andmanipulated in the Data Analysis Module (260) rendering usefulinformation for the user.

FIG. 15 is an architectural block diagram of the Ecommerce Module (265)which includes a Graphical User Interface (1500), Import/Export Engine(1502), Ecommerce Engine (1504), and Notification Engine (1506).

The Ecommerce Module (265) allows users to order assays, elements,operations, plugins, and other components from vendors and technologyproviders using the software. The Ecommerce Module contains a list ofcomponents (elements, operations, and plugins) using the Import/ExportEngine (1502) which can be viewed through the Graphical User Interface(1500) which the user can order. The Ecommerce Engine (1504) actssimilar to a shopping cart collecting the item lists, quantities, andprices. The purchase can be completed via the network where a securedtransaction can occur on the Extranet Network Library (130). The VendorNotification Engine (1506) can also send vendors order information oralternatively be used to request samples. Vendor Notification Engine(1506) may also send order confirmation information back to the user andmay be used as a communication service between the user and vendor. Someusers may require authorization for certain ecommerce functionalities.

FIGS. 16A and 16B illustrate an exemplary process is where the user isable to create a new assay using the software and share this assay witha team or the global community. The logical flow is described asfollows. The user selects components (e.g., elements, operations,plugins) from the Library and can add them to the Assay Design interface(1600). The user can add and update the properties for each element,operation, and plugin used in the assay (1602). The user can also runthe Wizard to verify the assay parameters are valid (1604). The user canalso run plugins which may be device controllers to run the experimentthat has been designed (1606). It is important to note that devicecontrol plugins are not always required for the purpose of conductingthe assay as the user may conduct the assay manually. The user can alsoimport that assay data (1608) and include it with the Assay Design atany point such as the end of the assay or report intermediate resultsduring the course of the assay. Additionally, the user can also performdata analysis (1610) using the Data Module (235). The user can save theassay project (1612). Once saving is initialized, the user may add theuser's signature to the assay (1614). In some configurations, theadministrator (e.g.: supervisor, lab head, manager) may be notified thatthe user has saved an assay and the admin is notified to sign (1616).This notification can be provided via various methods such as email,however in one embodiment, the administrator version of the softwareallows for managing other users. The admin is notified to sign as awitness (1616) to the user assay. The admin can sign the user assayproject (1618) and the process is recorded to the user Transaction LogFile (1624) and the admin Transaction Log File (1620). In otherinstances the software may be configured such that admin signature isnot needed. The assay project and Transaction Log are added to the userlibrary (1628).

Continuing from FIG. 16A to FIG. 16B, the user is able to share theassay project with the team (1630). The user can elect to share theentire assay project, or select parts to share, with the team via theIntranet Library (1632). FIGS. 22A-22D provide detail as to howelements, operations, plugins, and data are converted from a graphicaldisplay to a text-based assay data file. Additionally, when the softwareloads an assay data file, it may be able to convert the data file to agraphical representation of assay. For example, the user can share onlya subset of an assay specification, and in response the system cangenerate an abbreviated assay data file that includes a subset ofelement data objects and/or a subset of operation data objectsassociated with the subset of the candidate assay specification.Additionally, the user can share the entire assay project, or selectparts to share, with the global community via the Main Extranet WWWLibrary (1636). In one embodiment, the admin is notified that the useris choosing to share the assay project (or parts thereof) with the teamand/or global community. The admin can allow sharing via approving therequest (1626) and the project (or parts thereof) is added to the teamlibrary (1634). Alternatively, the admin can set the user software toauto-approve sharing with the team by setting the permissions for theuser software. The admin approval flow is an optional feature and maynot be required in all cases. If the user has chosen to share the assayproject (or parts thereof) with the global community the admin of theMain Extranet WWW Library reviews the assay for inclusion (1638) and theassay project (or parts thereof) are added to the Main Extranet WWWLibrary and shared with the global community (1640). Team users or theglobal community is able to download the assay project or parts and usethe information for their own assays. This may also create acollaborative working environment. See FIG. 19 for downloading assays.

FIGS. 17A and 17B illustrate an exemplary process whereby the user isable to create a new assay using the software based on an existingassay, and share this with the team or the global community. The logicalflow is described as follows. The user selects the existing assay fromthe assay library (1700). The user modifies properties for the elements,operations, and plugins as needed (1702). The user can also removeelements, operation, and plugins as needed. The user can add elements,operations, and plugins as needed (1704). The user can also run theWizard to evaluate assay properties and parameters (1706). The user canrun plugins if needed (1708). The user can import data (1710) aspreviously described (Step 1608 of FIG. 16A). The user can analyze thedata (1712) as previously described (step 1610 of FIG. 16A). The usersaves the assay (1714). The user signature is added (1716). In someconfigurations, the administrator (e.g.: supervisor, lab head, manager)may be notified that the user has saved an assay and the admin isnotified to sign (1718). This notification can be provided via variousmethods such as email, however in one embodiment, the administratorversion of the software allows for managing other users. The admin isnotified to sign as a witness (1718). The admin signs the user assayproject (1720). The admin transaction log file records the admin hassigned the user project (1722). The user transaction log file isgenerated (1724). In other instances the software may be configured suchthat admin signature is not needed. The assay project and transactionlog are added to the library (1726).

Continuing from FIG. 17A to 17B, the user may choose to share the assayproject with the team (1728). The user can elect to share the entireassay project or select parts to share (1730) with the team via theIntranet Library. Additionally, the user can share the entire assayproject, or select parts to share, with the global community via theMain Extranet WWW Library (1736). The admin is notified that the user ischoosing to share the assay project (or parts thereof) with the teamand/or global community. The admin can allow sharing via approving therequest (1732) and the assay project (or parts thereof) is added to theteam library (1734). Alternatively, the admin can set the user softwareto auto-approve sharing with the team by setting the permissions for theuser software. The admin approval flow is an optional feature and maynot be required in all cases.

If the user has chosen to share the assay project (or parts thereof)with the global community the admin of the Main Extranet WWW Libraryreviews the assay for inclusion (1738) and the assay project (or partsthereof) are added to the Main Extranet WWW Library and shared with theglobal community (1740). Team users or the global community is able todownload the assay project or parts and use the information for theirown assays. This may also create a collaborative working environment.See FIG. 19 for downloading assays.

FIG. 18A and FIG. 18B illustrate an exemplary process whereby a user maychoose to design an assay at a given time and add data to the assayproject at a later time, and then share the assay with a team or globalcommunity. The logical flow is described as follows. The user selectstheir existing assay from the library (1800). The user imports data(1802), analyzes the data (1804), and saves the assay (1806). The usersignature is added (1808) and the admin is notified to sign as witness(1810). In some configurations, the administrator (e.g.: supervisor, labhead, manager) may be notified that the user has saved an assay and theadmin is notified to sign (1810). This notification can be provided viavarious methods such as email, however in one embodiment, theadministrator version of the software allows for managing other users.The admin signs the user assay project (1812). The admin transaction logfile records the admin has signed the user project (1814). The usertransaction log file is generated (1816). In other instances thesoftware may be configured such that admin signature is not needed. Theassay project and transaction log are added to the library (1818).

Continuing from FIG. 18A to 18B, the user chooses to share the assayproject with the team (1820). The user can elect to share the entireassay project or select parts to share (1822) with the group via theIntranet Library. Additionally, the user can share the entire assayproject, or select parts to share, with the global community via theMain Extranet WWW Library (1824). The admin is notified that the user ischoosing to share the assay project (or parts thereof) with the teamand/or global community. The admin can allow sharing via approving therequest (1826) and the project (or parts thereof) is added to the teamlibrary (1828). Alternatively, in some examples the admin can set theuser software to auto-approve sharing with the team by setting thepermissions for the user software. The admin approval flow is anoptional feature and may not be required in all cases. If the user haschosen to share the assay project (or parts thereof) with the globalcommunity the admin of the Main Extranet WWW Library reviews the assayfor inclusion (1830) and the assay project (or parts thereof) are addedto the Main Extranet WWW Library and shared with the global community(1832). Team users or the global community is able to download the assayproject or parts and use the information for their own assays. This mayalso create a collaborative working environment. See FIG. 19 fordownloading assays.

FIGS. 19A and 19B illustrate an exemplary process whereby the softwareallows users to design and share assays and creates opportunities forother users to download assay projects, templates, or components via theMain Extranet WWW Library (1900) and build on these assays to create newassays which can also be shared. This may also create a collaborativeworking environment. The logical flow is described as follows. The userdownloads the assay template files from the Main Extranet WWW Library(1900). The user can then modify the properties for elements,operations, and plugins as needed (1902). The user can add new elements,operations, and plugins to the assay template (1904). Additionally, theuser can delete elements, operations, and plugins from the assaytemplate. The user can run the Wizard to evaluate assay parameters(1906) and run plugins as needed (1908). If data is generated, it can beimported (1910). The user can also analyze data (1912). The user cansave this assay and the user signature is added (1916), the admin isnotified to sign as witness (1918). In some configurations, theadministrator (e.g.: supervisor, lab head, manager) may be notified thatthe user has saved an assay and the admin is notified to sign (1918).This notification can be provided via various methods such as email,however in one embodiment, the administrator version of the softwareallows for managing other users. The admin signs the user assay project(1920). The admin transaction log file records the admin has signed theuser project (1922). In other instances the software may be configuredsuch that admin signature is not needed. The user transaction log fileis generated (1924). The assay project and transaction log are added tothe library (1926).

Continuing from FIG. 19A to 19B, the user chooses to share the assayproject with the team (1928). The user can elect to share the entireassay project, or select parts to share, with the group via the IntranetLibrary (1930). Additionally, the user can share the entire assayproject, or select parts to share, with the global community via theMain Extranet WWW Library (1932). The admin is notified that the user ischoosing to share the assay project (or parts thereof) with the teamand/or global community. The admin can allow sharing via approving therequest (1934) and the project (or parts thereof) is added to the teamlibrary (1936). Alternatively, the admin can set the user software toauto-approve sharing with the team by setting the permissions for theuser software. The admin approval flow is an optional feature and maynot be required in all cases. If the user has chosen to share the assayproject (or parts thereof) with the global community the admin of theMain Extranet WWW Library reviews the assay for inclusion (1938) and theassay project (or parts thereof) are added to the Main Extranet WWWLibrary and shared with the global community (1940). Team users or theglobal community is able to download the assay project or parts and usethe information for their own assays. This may also create acollaborative working environment.

FIG. 20 illustrates an exemplary process whereby the software is able tostore assays as projects and components including elements, operations,and plugins, along with their associated properties and enable the userto search for assays, users, and components based on any queryparameter. For example, a user may identify a certain reagent as beingcontaminated and may want to query for all assays which used thatparticular reagent and which may offset results. Similarly, anadministrator may wish to find the number of users and assays whichemployed the use of a particular reagent. The logical flow is describedas follows. The user enters the search screen (2000). The user can entera search query and select parameters such as library, transaction logs,elements, operations, plugins, data, user, compound, etc (2002). Certainqueries may require admin privileges such as retrieving a list of usersor locations. The search engine queries all user transaction logs (2004)and libraries. The result set delivers a list of matching results suchas assays, users, transaction logs, etc. (2006). The user can select theresults and export the reports (2008). Depending on privileges, theadmin may also be able to view the assay performed in full detail.Optionally, the user signature may be added (2010) to the query reportand a transaction log file of the query is generated (2018). This may beoptional in certain settings and required in others. Furthermore, anadmin may need to sign the query transaction log as a witness to anotheruser (2012) and the admin signature is also added (2014) and recorded tothe admin transaction file (2016). The search query transaction log fileis added to the transaction logs library (2020).

FIG. 21A and FIG. 21B illustrates a process whereby a sample cell-basedassay typical workflow may entail a variety of steps. The purpose ofthis figure is to demonstrate the workflow of a traditional cell-basedassay. In subsequent figures this example assay can be translated as anassay conducted using the assay software techniques described herein. Acell culture plate is selected for the purpose of growing cells (2100).Cell culture media is prepared containing salt solution, 10% fetalbovine serum, and 1% penicillin/streptomycin (2102). Cells are selectedfor the assay such as Chinese Hamster Ovarian (CHO) cells (2104). Thecell culture media is warmed to 37° C. (2106). The cells are added tothe cell culture media in a conical tube (2108). A cell counter deviceis used to count the number of cells per unit volume media (2110). Themedia volume is adjusted to bring the cells to the desired cell density(2112). The cells in culture media are dispensed into a microplate toadd the desired number of cells to each well (2114). The cells areincubated in an incubator at 37° C. overnight (2116) to allow attachmentof the cells to the well bottom. The attached cells are visuallyinspected to reach 95% confluence (2118). The cell culture media is thenaspirated from the well (2120). The cells are washed twice with theappropriate buffer (2122).

Continuing from FIG. 21A to 21B, a buffer containing the dye reagent isadded to the wells containing cells and incubated for 1 hour (2124). Thebuffer containing the dye reagent is then aspirated from the well(2126). The cells are washed with buffer twice more (2128). The assaybuffer is added to the wells of the microplate (2130). A second platecontaining drugs (e.g.: small molecules) is prepared at twice thedesired final concentration (2132). The plate containing cells is readon a reader to establish a baseline measurement (2134). The assay buffercontaining the drugs to is added to the cell culture plate at a volumewhich results in the desired final concentration (2136). The plate isread again on a device to determine if a response is detected (2138)over time in the presence of the drug and dye (2140). The kinetic dataover time is recorded (2140). The data file is exported (2142). The datafile is then analyzed and assay quality is verified by measuring theresponse of the negative control wells and positive control wells(2144). The cell response to the drugs is reviewed through a variety ofdifferent methods such as graphs, plots, signal subtractions, etc(2146). This high-level view demonstrates the workflow involved in atypical cell-based assay. This assay can now be viewed as elements,operations, and plugins using the assay software techniques describedherein, as shown in FIG. 22.

FIGS. 22A, 22B, 22C, and 22D illustrates a process and depicts the assayworkflow in the example assay described in FIGS. 21A and 21B, to showhow the element data objects, operation data objects, and plugins areencoded in a data file. Here the same assay is viewed as a series ofElements, Operations, and Plugins, each of which have their ownproperties in the software application. Each element, operation, andplugin can be classified as a type either through a default librarysetting, or a custom type as determined by the user. Classifyingelements, operations, and plugins by type enables the user to morequickly locate the component in the library. Properties may includenotes which can be a variety of user inputs such as observations,intermediate results, and more for a given element, operation, orplugin. The user may also customize properties for a given element,operation, or plugin. They may choose to add or remove properties, orcreate new elements, operations, and plugins with custom properties. Adefault set of properties may be included in the default set ofelements, operations, and plugins.

As elements, operations, plugins, data, and their associated propertiesare assembled in a graphical representation in the software, informationcan be assembled to visually represent the assay. The information ofeach component can also be used to generate a text file with fulldetails of the assay. This allows the user to visually create an assay(e.g., by dragging and dropping) and efficiently document the assay(e.g., via the text file). Additionally, an assay file can be generatedusing this information which can render (e.g., or re-create) the visualrepresentation of the assay when the assay file is loaded into thesoftware. The drag-and-drop interface (as described in FIG. 23 steps2304 and 2306) allows the user to create relationships between elements,operations, plugins, and data in a visual representation and addproperties information to each. The software can extract the informationfrom each object and generate a text file or assay file enabling visualrepresentation of the assay when loaded in the software.

Beginning with FIG. 22A, the culture flask is an element of typeconsumable with the properties of manufacturer, model number, volumecapacity, initial volume, and notes (2200). The culture media is anelement of type reagent with properties which include salt buffer, fetalbovine serum, penicillin/streptomycin, at various volumes, a finalvolume if 100 mL, and notes (2202). The CHO cells are an element of thetype biologics with the properties including cell type, passage number,condition, and notes (2204). Warming the media is an operation of typecell culture with properties including temperature, duration, and notes(2206). Cell transfer is an operation of type cell culture withproperties including cell volume, media volume, final volume, and note(2208). Cell count is an operation of type cell culture with propertiesincluding counter type, model, volume tested, count value, and notes(2210).

Continuing from FIG. 22A to FIG. 22B, cell dilution is an operation ofthe type cell culture with properties including initial volume, initialconcentration, final volume, final concentration, and notes (2212). Cellmicroplate is a plugin of the type 384 microplate with a variety ofproperties including plate map, plate details, initial well volume,final well volume, and notes (2214). The 384-well microplate contains384 wells arranged in a matrix of 16 rows and 24 columns. Since thisitem is a plugin, it has a specific set of properties such as a wellplate map and a variety of details. One example plugin for a 384-wellmicroplate is described in detail in FIG. 26. Incubate is an operationsof type cell culture with properties including temperature, duration,and notes (2216). Verifying CHO cell confluence is an operation of typecell observation with properties including verification type, settings,and notes (2218). This may be an intermediate result in the assay, andthe user may optionally choose to include both written notes and attacha photo of the observation if needed. Aspirate CHO is an operation oftype aspiration with properties including initial volume, aspirationmethod, final volume, and notes (2220). Wash plate twice (2×) is anoperation of type cell culture with properties including the bufferused, the addition volume, aspirate volume, number of cycles, finalvolume and notes (2222).

Continuing from FIG. 22B to FIG. 22C, Dye Buffer ABC is an element oftype reagent with properties including buffer volume, dye volume, finalvolume, final concentration, and notes. CHO dye exposure is an operationof type dispense with properties including dispensed material, initialvolume, initial concentration, final volume, final concentration, andnotes (2226). Incubate is an operation of type cell culture withproperties including temperature, duration, and notes (2228). AspirateCHO is an operation of type aspiration with properties including initialvolume, aspiration method, final volume, and notes (2230). Wash platetwice (2×) is an operation of type cell culture with propertiesincluding the buffer used, the addition volume, aspirate volume, numberof cycles, final volume and notes (2232). Drug 123 Microplate is aplugin of the type 384 microplate with a variety of properties includingplate map, plate details, initial well volume, final well volume, andnotes (2234). The 384-well microplate contains 384 wells arranged in amatrix of 16 rows and 24 columns. Since this item is a plugin, it has aspecific set of properties such as a well plate map and a variety ofdetails. FIG. 26 described an exemplary plugin for a 384-well microplatein detail.

Continuing from FIG. 22C to FIG. 22D, Reader ABC is an element of typehardware with properties including device make, model, read wavelength,read interval, number of desired reads, and notes (2236). Here ReaderABC is being used to perform a baseline, or pre-addition read. Drugaddition is an operation of type plate/plate transfer with propertiesincluding source plate, initial volume, initial concentration,destination plate, final volume, final concentration, transfer volume,and notes (2238). Reader ABC is an element of type hardware withproperties including device make, model, read wavelength, read interval,number of desired reads, and notes (2240). Here Reader ABC is being usedto perform a post-addition read after cells have been exposed to variousagents. CHO cells data is an operation of type raw data export withproperties including file type, parser used, and notes (2242). CHO cellsresult is a plugin of type Reader 123 Plot with properties includinggraph type, and notes (2244). Save and signature is performed as a finalstep of type save assay which has properties including save assay type,share assay, signature, and date (2246).

FIG. 23 illustrates an exemplary graphical user interface from the assaysoftware techniques described herein. The software includes a graphicaluser interface (GUI) which would allow a user to visually design anassay using elements, operations, and plugins as outlined in FIG. 22,including left tree navigation (2300), tabbed navigation panel (2302),customized toolbar with commonly used iconic representations ofelements, operations, and plugins (2304), workspace (2306), exampleicons such as a culture flask element icon (2308), culture media elementicon (2310), cells element icon (2312), warm media operation icon(2314), linking relationships (2316).

The interface left tree navigation (2300) allows the user to quicklyaccess various files in the assay project. The Assay Design is part of atabbed navigation panel (2302) allowing the user to click between panelviews. The Assay Design panel includes a customized toolbar withcommonly used iconic representations of elements, operations, andplugins (2304). The user can click or drag the icon to the workspace(2306) and create relationship links between the items. The cultureflask element (2200 of FIG. 22) is depicted as a culture flask elementicon (2308). The culture media element (2202 of FIG. 22) is depicted asa culture media element icon (2310). The CHO cells element (2204 of FIG.22) is depicted as a CHO cells element icon (2312). The warm mediaoperation (2206 of FIG. 22) is depicted as a warm media operation icon(2314). Assay components can be linked to one another (2316) andrelationships can be defined. The use of visual icons as assay stepsresults in fast assay design and implementation. For example, a user cansimply select the elements, operations, and plugins through thegraphical interface, and the software converts the selected objects intothe detailed data file. Additionally, visual representation allows theviewer to quickly understand the steps involved in the assay and servesas powerful tool for sharing information. Furthermore, the properties ofeach element, operation, and plugin can be defined. FIG. 24 shows theproperties box in detail. By linking elements, operations, plugins toeach other and defining properties for each component, a robust set ofinformation is quickly assembled using a visual interface.

FIG. 24 illustrates an exemplary graphical user interface (GUI) of thesoftware as described in FIG. 23 and depicts an example propertiesinterface for the current techniques described herein. The softwareincludes the Assay Design workspace (2400), a compound plate element(2402), an addition step operation (2404), the destination plate element(2406), an element properties box (2408), and an operations propertiesbox (2410). The Assay Design workspace (2400) depicts a compound plateelement (2402), an addition step operation (2404), and the destinationplate of the addition operation (2406). The properties of the elementdepicted in (2406) are shown in the element properties box (2408).Properties may include a variety of default and custom attributes whichcan be defined by the user. The properties box (2408) includes platecolor, plate bottom, well shape, well bottom shape, well volume,coating, manufacturer, model number, custom attribute option, and notes(2408). These properties are associated with the element of name Plate#1, which is an element of type plate. This allows the user to enterthis information once, and pull this specific element from the libraryat any time, and simply edit the properties as needed withoutnecessarily needing to re-enter the information. This makes routineassay components readily available to the user. Furthermore, the usercan use visual icons to create assay designs with a drag/drop action,pre-populate the properties which are stored with the specific element,and only update changes. The addition step is an operation of type addwith a unique set of properties including from element, to element,aspirate volume, dispense volume, initial concentration, finalconcentration, initial volume, final volume, a custom attribute option,and notes (2410). Once again, the properties can be associated with thisspecific operation and be updated as needed by the user. The propertiesof each element, operation, and plugin allow the Wizard (described inFIG. 6) to evaluate assay parameters and warn the user if a parameterdoes not meet the correct value or rule criteria. For example, should auser indicate a total volume of 20 uL when 10 uL is added to a wellcontaining 15 uL, then the Wizard could evaluate this information fromthe properties and warn the user that the final volume is not accurate.Furthermore, if a custom rule is violated, the Wizard could warn theuser based on the properties of the element, operation, or plugin used.One such rule may be set to have a maximum passage number for a celltype. If element properties indicate cells used have a passage number of12 which exceeds the maximum rule value of 10, the Wizard could warn theuser.

FIGS. 25A-25H is an example of a transaction log file. This filesequentially includes all elements, operations, plugins, and theirrespective properties used in an experiment along with the usersignature and timestamp. The transaction log file may begin with theuser name, date, and timestamp as show in FIG. 25A. The first element inthe transaction log file is shown in FIG. 25A as being the same data forthe element in step 2200 of FIG. 22A. This element is an element of typeconsumable with the name Culture Flask and has properties includingmanufacturer, model number, volume capacity, initial volume, and notes.The element including all properties are displayed in the transactionlog file. The next element in the transaction log file is based on thesecond element shown in step 2202 of FIG. 22A, which is an element oftype reagent with the name Culture Media have the properties of HBSSvolume of 89 mL, FBS volume of 10 mL, Pen/Strep volume of 1 mL, a finalvolume of 100 mL, and notes. As shown, these properties can be extracteddirectly from the assay and included in the transaction file. Thetransaction file follows sequentially the elements, operations, plugins,data, and respective properties as shown in the assay software (FIGS.22A-22D). The transaction log file may also include user name, date,timestamp, and external validation keys may also be added in someembodiments to provide 3^(rd)-party validation and added security todate, timestamp, and user information as part of this file. This filecan be stored in the Assay Library (320) of FIG. 3. Furthermore, thistransaction log file can be stored externally in the Intranet NetworkLibrary (120) or elsewhere such that it can be accessed by anadministrator. The file is also searchable which allows an administratorto perform such tasks as querying users, assays, and more as describedin FIG. 20. The transaction log file may be of value when evidence ofassay performed is required. It may also serve as an audit trail.

FIG. 26 illustrates an exemplary graphical user interface (GUI) of thesoftware plugin interface for a plugin of type 384 Plugin. The plugin oftype 384 Plugin (2600) named 384 Well Plate (2602) includes a plate mapor virtual microplate (2604), various well map area markers (2606),(2618), (2614), a method for creating new selections (2610), and labelsfor plate well areas (2608), (2612), (2616).

This example depicts a plugin with a specialized properties interface(2600). While elements and operations have properties boxes, plugins mayhave the option of a specialized properties interface. In this example,the plugin of type 384 Plugin (2600) named 384 Well Plate (2602) isshown. Microplates are common in assays and are available in a varietyof matrix sizes. Each well in a microplate may contain differentexperiments with different experimental parameters. In the plugin, aplate map or microplate is shown (2604). The map depicts various areaswithin the microplate. For example, the first 2 columns (2606) maycontain positive controls—substances known to show a positive response.The positive control wells are also labeled at the top of the plate bycolor, name, and notes (2608) and assigned a unique color on the map(2606). The user can assign as many wells with as many labels as neededto create a plate map. Controls allow the user to add to a selection,remove a selection, clear a selection, or create a new selection on theplate (2610). The negative controls are wells which should not elicit aresponse in the assay (2612). These wells are shown on the far right ofthe plate map (2614). The experimental wells are labeled at the top(2616) and shown in the center area of the plate map by color (2618).This type of plugin with a specialized properties interface allows theuser to visually design the plate map for an assay. Furthermore, theplate map may be used for many experiments since it can be stored as atemplate in the library (330). The user can run many plates (as oftenoccurs in high throughput screening labs) using the same templatewithout having to re-enter properties. Additionally, technologyproviders (e.g.: assay kit providers) can prepare such plugins and allowusers to download them such that the user can quickly run an assay asdescribed by the manufacturer. Furthermore, this is only one type ofplugin that can be created. Specialized properties interface plugins canbe provided for DNA assays, protein assays, synthesis assays,petrochemical assays, and more as described in FIG. 5. Users can use aplugin creation interface (506) to design plugins for use withparticular or custom assays. They can be stored in the local deviceLibrary (200), Intranet Network Library (120), or Extranet Main NetworkLibrary (160) to be shared with the global community as well as otherlocations.

FIGS. 27A, 27B, 27C, and 27D illustrates a logical assay workflow usingthe software techniques described herein. The user starts the softwareand begins with a login (2702) process. Once logged in, a navigationtree is loaded in the left panel (2704). The user may create a new assay(2706) or load an existing assay.

If the assay is an existing assay, the user selects the assay from theassay library (2708). The selected assay is loaded in the assay designpanel (2710). The user can update the properties of the elements,operations, and plugins (2714). The user can also remove elements,operations, and plugins as desired or add items (2714) such as elements,operations, and plugins to the assay.

Continuing from 27A to 27B, if the user chooses to build a new assay,the user may choose to add an element (2716), an operation (2732), or aplugin (2746). If the user chooses to add a new element (2718), they cancreate a new element using the element creation interface (2720) whichis added to the library. The user can select the new or existing elementusing the element selection interface (2722) which selects the elementfrom a library (2724). The element is then added to the workspace (2726)and the user can update the element properties (2728). The user maychoose to add more items such as element, operations, or plugins (2730).

If the user chooses to add an operation (2732) the user can add a newoperation (2734) and create the new operation using the operationcreation interface (2736) which adds the new operation to the library.The user can select the new or existing operation using the operationselection interface (2738) which selects the operation from a library(2740). The operation is then added to the workspace (2742) and the usercan update the operation properties (2744). The user may choose to addmore items such as element, operations, or plugins (2730).

If the user chooses to add a plugin (2746) the user can add a new plugin(2748) and create the plugin using the plugin creation interface (2750)which adds the new plugin to the library. The user can select the new orexisting plugin using the plugin selection interface (2752) whichselects the plugin from a library (2754). The plugin is then added tothe workspace (2756) and the user can update the plugin properties(2758). The user may choose to add more items such as element,operations, or plugins (2730).

Continuing from 27B to 27C, if the user chooses to not add additionalelements, operations, or plugins (2730) and (2714), the user can chooseto run the wizard (2760). If the wizard is started, the wizard engine(2762) can evaluate the properties of all elements, operations, andplugins in the assay and provide a response to the user via wizardresponse (2764). The user may then also choose to add data to the assay(2766).

Alternatively, the user may choose not to run the wizard. The user mayalso choose to add data to the assay (2766). If the user chooses not toadd data, the user may save the assay (2784). If the user chooses to adddata to the assay they may import the data (2768) and use the dataimport interface (2770) and select a parser for the data (2772) and addthe data to the library. The data can be selected from the data library(2774) and added to the assay (2776).

The user may choose to perform data analysis on the data (2778). Dataanalysis can be performed with the data analysis engine (2780) and thedata analysis can be saved to the library (2782). Assay can be saved(2784). Alternatively, if the user chooses not to perform data analysis,the assay can be saved as well (2784).

Continuing from 27C to 27D, the user can add their signature to theassay using the signature engine (2786). The transaction file is alsogenerated using the transaction engine (2788), user module 2790, andencryption engine (2792) which generates the transaction file asdescribed in FIG. 11 and FIG. 25. The assay is saved to the library(2794). The user may logout end exit (2796).

The saved assays or components can be shared with the team or with theglobal community as described in FIGS. 16A-16B, FIGS. 17A-17B, FIGS.18A-18B, and FIGS. 19A-19B.

The above-described techniques can be implemented in digital and/oranalog electronic circuitry, or in computer hardware, firmware,software, or in combinations of them. The implementation can be as acomputer program product, i.e., a computer program tangibly embodied ina machine-readable storage device, for execution by, or to control theoperation of, a data processing apparatus, e.g., a programmableprocessor, a computer, and/or multiple computers. A computer program canbe written in any form of computer or programming language, includingsource code, compiled code, interpreted code and/or machine code, andthe computer program can be deployed in any form, including as astand-alone program or as a subroutine, element, or other unit suitablefor use in a computing environment. A computer program can be deployedto be executed on one computer or on multiple computers at one or moresites.

Method steps can be performed by one or more processors executing acomputer program to perform functions of the invention by operating oninput data and/or generating output data. Method steps can also beperformed by, and an apparatus can be implemented as, special purposelogic circuitry, e.g., a FPGA (field programmable gate array), a FPAA(field-programmable analog array), a CPLD (complex programmable logicdevice), a PSoC (Programmable System-on-Chip), ASIP(application-specific instruction-set processor), or an ASIC(application-specific integrated circuit). Subroutines can refer toportions of the computer program and/or the processor/special circuitrythat implement one or more functions.

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital or analog computer.Generally, a processor receives instructions and data from a read-onlymemory or a random access memory or both. The essential elements of acomputer are a processor for executing instructions and one or morememory devices for storing instructions and/or data. Memory devices,such as a cache, can be used to temporarily store data. Memory devicescan also be used for long-term data storage. Generally, a computer alsoincludes, or is operatively coupled to receive data from or transferdata to, or both, one or more mass storage devices for storing data,e.g., magnetic, magneto-optical disks, or optical disks. A computer canalso be operatively coupled to a communications network in order toreceive instructions and/or data from the network and/or to transferinstructions and/or data to the network. Computer-readable storagedevices suitable for embodying computer program instructions and datainclude all forms of volatile and non-volatile memory, including by wayof example semiconductor memory devices, e.g., DRAM, SRAM, EPROM,EEPROM, and flash memory devices; magnetic disks, e.g., internal harddisks or removable disks; magneto-optical disks; and optical disks,e.g., CD, DVD, HD-DVD, and Blu-ray disks. The processor and the memorycan be supplemented by and/or incorporated in special purpose logiccircuitry.

To provide for interaction with a user, the above described techniquescan be implemented on a computer in communication with a display device,e.g., a CRT (cathode ray tube), plasma, or LCD (liquid crystal display)monitor, for displaying information to the user and a keyboard and apointing device, e.g., a mouse, a trackball, a touchpad, or a motionsensor, by which the user can provide input to the computer (e.g.,interact with a user interface element). Other kinds of devices can beused to provide for interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, and/ortactile input.

The above described techniques can be implemented in a distributedcomputing system that includes a back-end component. The back-endcomponent can, for example, be a data server, a middleware component,and/or an application server. The above described techniques can beimplemented in a distributed computing system that includes a front-endcomponent. The front-end component can, for example, be a clientcomputer having a graphical user interface, a Web browser through whicha user can interact with an example implementation, and/or othergraphical user interfaces for a transmitting device. The above describedtechniques can be implemented in a distributed computing system thatincludes any combination of such back-end, middleware, or front-endcomponents.

The computing system can include clients and servers. A client and aserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

The components of the computing system can be interconnected by any formor medium of digital or analog data communication (e.g., a communicationnetwork). Examples of communication networks include circuit-based andpacket-based networks. Packet-based networks can include, for example,the Internet, a carrier internet protocol (IP) network (e.g., local areanetwork (LAN), wide area network (WAN), campus area network (CAN),metropolitan area network (MAN), home area network (HAN)), a private IPnetwork, an IP private branch exchange (IPBX), a wireless network (e.g.,radio access network (RAN), 802.11 network, 802.16 network, generalpacket radio service (GPRS) network, HiperLAN), and/or otherpacket-based networks. Circuit-based networks can include, for example,the public switched telephone network (PSTN), a private branch exchange(PBX), a wireless network (e.g., RAN, bluetooth, code-division multipleaccess (CDMA) network, time division multiple access (TDMA) network,global system for mobile communications (GSM) network), and/or othercircuit-based networks.

Devices of the computing system and/or computing devices can include,for example, a computer, a computer with a browser device, a telephone,an IP phone, a mobile device (e.g., cellular phone, personal digitalassistant (PDA) device, laptop computer, electronic mail device), aserver, a rack with one or more processing cards, special purposecircuitry, and/or other communication devices. The browser deviceincludes, for example, a computer (e.g., desktop computer, laptopcomputer) with a world wide web browser (e.g., Microsoft® InternetExplorer® available from Microsoft Corporation, Mozilla® Firefoxavailable from Mozilla Corporation). A mobile computing device includes,for example, a Blackberry®. IP phones include, for example, a Cisco®Unified IP Phone 7985G available from Cisco System, Inc, and/or a Cisco®Unified Wireless Phone 7920 available from Cisco System, Inc.

One skilled in the art will realize the invention may be embodied inother specific forms without departing from the spirit or essentialcharacteristics thereof. The foregoing embodiments are therefore to beconsidered in all respects illustrative rather than limiting of theinvention described herein. Scope of the invention is thus indicated bythe appended claims, rather than by the foregoing description, and allchanges that come within the meaning and range of equivalency of theclaims are therefore intended to be embraced therein.

While the foregoing refers to the “invention,” this disclosure mayinclude more than one invention.

What is claimed is:
 1. A computerized method for electronically definingand validating an assay so the assay can be easily shared among a set ofusers, the method comprising: storing, by a computing device, in adatabase: a set of user-selectable element data objects, each elementdata object defining a physical component that can be used in one ormore assays; a set of user-selectable operation data objects, eachoperation data object defining an action that can be performed for oneor more element data objects from the set of element data objects forthe one or more assays; and a set of validation rules for the one ormore assays that can be used to determine, for each assay of the one ormore assays, whether an associated set of element data objects from theset of element data objects and an associated set of operation dataobjects from the set of operation data objects define a valid assay;receiving, by the computing device, data indicative of selecting, for acandidate assay specification: a first set of element data objects fromthe set of element data objects; and a first set of operation dataobjects from the set of operation data objects, each operation dataobject from the first set of operation data objects defining an actionto perform on one or more of the element data objects from the first setof element data objects; generating, by the computing device, thecandidate assay specification based on the received data, the candidateassay specification comprising the first set of element data objects andthe first set of operation data objects; validating, by the computingdevice, the first set of element data objects and the first set ofoperation data objects for the candidate assay specification todetermine the candidate assay specification is valid; and generating, bythe computing device, an assay data file for the candidate assayspecification that includes the first set of element data objects andthe first set of operation data objects, such that the assay data filecan be shared among a set of users.
 2. The computerized method of claim1, further comprising: generating step-by-step execution instructionsfor the candidate assay specification, each step listing one or morephysical components from the first set of element data objects, and oneor more actions, from the set of operation data objects, to perform onthe one or more physical components; displaying a first step from thestep-by-step execution instructions; receiving data indicative of acompletion of the first step; and recording a completion timestamp ofthe first step.
 3. The computerized method of claim 1, whereingenerating the assay data file comprises: receiving data indicative of arequest to share only a subset of the candidate assay specification; andgenerating an abbreviated assay data file that includes: a subset ofelement data objects from the first set of element data objects, thesubset of element data objects being associated with the subset of thecandidate assay specification; and a subset of operation data objectsfrom the first set of operation data objects, the subset of operationdata objects being associated with the subset of the candidate assayspecification.
 4. The computerized method of claim 1, wherein generatingthe assay data file comprises: receiving data indicative of a request toshare the assay data file based on one or more user profile attributes;generating a collaboration group based on the one or more user profileattributes; sharing the assay data file with the collaboration group;and storing a number of views of the assay data file by one or moregroup members in the collaboration group.
 5. The computerized method ofclaim 1, further comprising: receiving data indicative of a request topurchase a physical component defined by an element data object, whereinthe element data object includes data indicative of a vendor of thephysical component; and transmitting an order request to the vendor forthe physical component.
 6. The computerized method of claim 1, whereingenerating the candidate assay specification comprises converting agraphical representation of the selected first set of element dataobject and the first set of operation data objects to a text-based assaydata file.
 7. The computerized method of claim 1, further comprising:receiving data indicative of a request to load a second assay data file;and generating a graphical representation of the second assay data file.